# demo03_time.py
import time
# 1. time.sleep(t)
# 2. time.time():返回当前系统时间戳,时间戳可以做算术运算
def func01():
    print("start...")
    time.sleep(2.34)  # 2.34s
    print("end...")
# start_time = time.time()  # 记录程序执行开始的时间
# func01()
# end_time = time.time()  # 记录程序执行结束的时间
# print(end_time-start_time)  # 2.3432397842407227
# 3. time.gmtime([secs])
# 将一个时间戳转换为 UTC时区的结构化时间。可选参数secs的默认值为 time.time()。
# (tm_year=2022, tm_mon=5, tm_mday=25, tm_hour=9, tm_min=43, tm_sec=0, tm_wday=2, tm_yday=145, tm_isdst=0)
result = time.gmtime()
print(result[0], result[1], result[2])  # 2022 5 25
print(result[:3])  # (2022, 5, 25)
print(result.tm_year, result.tm_mon, result.tm_mday)  # 2022 5 25
# 4. time.localtime([secs]): 本地的结构化时间 可选参数secs的默认值为 time.time()
result = time.localtime()
print(result[3], result[4], result[5])  # 17 51 47
print(result[3:6])  # (17, 51, 47)
print(result.tm_hour, result.tm_min, result.tm_sec)  # 17 53 1
print("*" * 50)
# 5. time.mktime(t): 将一个结构化时间转化为时间戳,t:结构化时间
result = time.mktime(time.localtime())
print(result)  # 1653527558.0
print(time.localtime(result - 3600))  # 将当前时间向前推一小时
# tm_hour=8, tm_min=14
# 6. time.strftime(格式, t): 返回格式化字符串表示的当地时间, t默认是localtime()
# %Y: 年  %m: 月  %d: 日  %H:时  %M:分  %S:秒
print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2022-05-26 09:26:04
print(time.strftime("该起床啦,现在是: %H:%M:%S"))
# 7. time.strptime(str, 格式):将时间字符串转成结构化时间
result = time.strptime("2099-11-30 12:34:56", "%Y-%m-%d %H:%M:%S")
print(result)
# tm_year=2099, tm_mon=11, tm_mday=30, tm_hour=12, tm_min=34, tm_sec=56, tm_wday=0, tm_yday=334, tm_isdst=-1)
# 2099-11-30
result1 = time.strptime("2099-11-30 13:34:56", "%Y-%m-%d %H:%M:%S")
print(result1 > result)  # 2099-11-30 13:34:56 > 2099-11-30 12:34:56
# True  九元组数据之间可以比较，越靠后表示的时间越大


